//
//  ViewController.m
//  UI21_NSURL
//
//  Created by dllo on 16/8/11.
//  Copyright © 2016年 yh. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    // 负责请求的地址 http://weather.sina.com.cn
     NSURL *url = [NSURL URLWithString: @"http://m.baidu.com/1.hmtl?hjkjashdkjah"];
    NSLog(@"%@", url);
    NSLog(@"%@", url.absoluteString); // 完整url对应的字符串
    NSLog(@"%@", url.host);  // 主机地址 / 域名
    NSLog(@"%@", url.path); // 主机地址 / 域名对应的地址
    NSLog(@"%@", url.query); // "?"以后的内容
    NSLog(@"协议%@", url.scheme); // url 所遵循的协议
    NSLog(@"%@", url.resourceSpecifier); // 除了协议的部分
    // 不可可变(只读 只能获取 不能修改) 可变 (一般处理网络请求 都是可变的)
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    // NSMutableURLRequest
    NSMutableURLRequest *mutableRequest = [NSMutableURLRequest requestWithURL:url];
    // 超时时间(一个请求持续多久会失败)
    mutableRequest.timeoutInterval = 17;
    // HTTPMethod 请求的方式 GET POST PUT DELETE
    mutableRequest.HTTPMethod = @"GET";
    // allHTTPHeaderFields 设置网络请求头 (对于字典 相同key时 后填入的值 会覆盖之前的值)
    mutableRequest.allHTTPHeaderFields = @{};
    [mutableRequest setValue:@"iOS 10.0 / iphone" forHTTPHeaderField:@"User-Agent"];
    [mutableRequest valueForHTTPHeaderField:@"User-Agent"];
    NSLog(@"%@", mutableRequest.allHTTPHeaderFields);
    NSLog(@"%@", url);
    // 一般POST请求时 才会使用(一般情况是 字典/字符串转换成的Data)
    mutableRequest.HTTPBody = [NSData data];

    // NSURLResponse 响应
    // NSURLResponse *
    // 创建response 一般用于缓存的判断
//    NSHTTPURLResponse *response = [[NSHTTPURLResponse alloc] initWithURL:url statusCode:200 HTTPVersion:@"HTTP/1.1" headerFields:@{@"date": [NSDate date]}]; // 时间
    // 状态码(一般都是系统创建的)
    // response.statusCode
    // response.allHeaderFields 响应头
    // content -type : application/json; charset:utf-8
    // 时间 日期 缓存
//    NSLog(@"%@", response.allHeaderFields);
    
    // CS(Client Server) 客户端 服务器
    
    
    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
